<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Struts 2 Training Materials</title>
</head>

<body>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<div align="center">
    <center>
        <table border="1" cellspacing="1" width="400">
            <tr>
                <td width="390"><font size="4"><b>Struts 2 Interceptors </b></font></td>
            </tr>
            <tr>
                <td width="384">
                    <ul>
                        <li>
                            <a href="#"> What are Struts 2 Interceptors ??</a>
                            <br>
                            - Many actions share common concerns prior to handling the actions logics itself such as
                            some cross application input validations,
                            file - upload pre processing, avoid double submit, populate the required controllers to be
                            pre populated.
                            <br>
                            - Before the Action is executed, the invocation can be intercepted by another object.
                            After the Action executes, the invocation could be intercepted again.
                            Unsurprisingly, we call these objects "Interceptors."
                            <br>
                        </li>
                        <li>
                            <a href="#"> Configure Interceptors</a>
                            <br>
                            - Default interceptor stack provided by struts is called as "defaultStack" (under
                            struts-default.xml)
                            <br>
                            - Interceptors are mapped under actions one by one or can be mapped as a interceptor stack.
                            <br>
                            - When mapping the interceptors it is important to map the "defaultstack" under every
                            action.
                            <br>
                            - Individual Interceptors and Interceptors Stacks can be "mixed and matched" in any order
                            when defining an Interceptor Stack.
                            <br>
                            - The framework will invoke each Interceptor on the stack in the order it is defined.
                            <br>
                            - >> GOTO struts.xml
                            <br>
                        </li>
                    </ul>
                </td>
            </tr>
            <tr>
                <td>
                    <a href="${root}/index.jsp">HOME</a>
                </td>
            </tr>
        </table>
    </center>
</div>
</body>
</html>